#include<pthread.h>
#include<iostream>
#include<string>
#include <unistd.h>
#include <sys/types.h>
#include <unistd.h> 
#include<vector>
using namespace std;
const int N=10;

//线程入口：
void* print(void *arg){
      sleep(1);
       string s=static_cast<const char*>(arg);//string会读取数据然后到s执行空间中
       cout<<"线程名字："<<s<<"正在运行"<<endl;
       delete []static_cast< char*>(arg);
       return nullptr;
}
int main(){
     vector<pthread_t>pv;
      for(int i=0;i<N;i++){
          pthread_t tid;
        char *id=new char[100];
        //char id[100];
         snprintf(id,100,"thread-%d",i);//堆上空间要修改成200；因为sizeof会计算连续栈地址求总和
       int n=pthread_create(&tid,nullptr,print,(void*)id);
         pv.push_back(tid);
        
        sleep(1);

      }
      //全部回收子线程：
      for(int i=0;i<N;i++){
        void* ret=nullptr;
        pthread_join(pv[i],&ret);
      }
    return 0;
}